package com.njtoyo.taxi.admin.service.business;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.njtoyo.taxi.admin.mapper.master.entity.OrderManageVo;
import com.njtoyo.taxi.admin.rest.presenter.business.ride.RideDetailPresenter;
import com.njtoyo.taxi.admin.rest.presenter.business.ride.RideListPresenter;
import com.njtoyo.taxi.admin.rest.presenter.business.ride.RideTrackPresenter;
import com.njtoyo.taxi.admin.rest.presenter.business.ride.SimpleRideDetailPresenter;
import com.njtoyo.taxi.admin.rest.presenter.business.simple_call_ride.ListPresenter;
import com.njtoyo.taxi.admin.rest.presenter.business.simple_call_ride.SimpleCallRideVO;
import com.njtoyo.taxi.admin.rest.wrapper.business.ride.OrderManageQueryDto;
import com.njtoyo.taxi.admin.rest.wrapper.business.simpleCallRide.SimpleCallRideQueryWrapper;
import com.taxi.entity.common.RestResult;
import com.njtoyo.taxi.entity.backend.AdminUser;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

public interface SimpleCallRideService {

    RestResult<SimpleRideDetailPresenter> detail(Long id);

    RestResult cancel(AdminUser adminUser, Long id);

    RestResult start(AdminUser adminUser, Long id);

    RestResult<IPage<ListPresenter>> getList(AdminUser adminUser, SimpleCallRideQueryWrapper wrapper);

    RestResult rideListExport(AdminUser adminUser, SimpleCallRideQueryWrapper wrapper, HttpServletResponse response) throws IOException;

    RestResult<Boolean> onlineOrderSetOffline(Long id);

    RestResult<RideTrackPresenter> getTrack(Long id);

    RestResult<IPage<SimpleCallRideVO>> getSimpleCallPhoneRideList(AdminUser adminUser, SimpleCallRideQueryWrapper wrapper);

    RestResult<IPage<RideListPresenter>> getPageList(AdminUser adminUser, SimpleCallRideQueryWrapper wrapper);

    RestResult getCountMsg(AdminUser adminUser, SimpleCallRideQueryWrapper wrapper);

    RestResult cancelBy(Long id, String triggerBy);

    RestResult refundOrder(Long rideId);

    //一键叫车
    List<OrderManageVo> getOneClickOrderManageVoList(AdminUser adminUser, OrderManageQueryDto dto);

    //助老屏
    List<OrderManageVo> getOldSimpleOrderManageVoList(AdminUser adminUser,OrderManageQueryDto dto);
}
